﻿using System;
using System.Collections.Generic;
using System.Text;

using FundSms.Client.Model;

namespace FundSms.Client.IDAL
{
    /// <summary>
    /// 返回信息接口
    /// </summary>
    public interface ISmsReturn
    {
        /// <summary>
        /// 插入返回信息
        /// </summary>
        /// <param name="returninfo">返回信息实体</param>
        void Insert(TSMSReturnHundSunInfo returninfo);

        /// <summary>
        /// 批量插入返回数据
        /// </summary>
        /// <param name="sql">返回数据批量插入Sql语句</param>
        void InsertBatch(string sql);

        /// <summary>
        /// 执行批量插入集合方式
        /// </summary>
        /// <param name="li">返回集合</param>
        void InsertList(List<TSMSReturnHundSunInfo> li);

        /// <summary>
        /// 更新返回信息
        /// </summary>
        /// <param name="returninfo"></param>
        void Update(TSMSReturnHundSunInfo returninfo);

        /// <summary>
        /// 修改状态信息
        /// </summary>
        /// <param name="status">状态</param>
        /// <param name="smsid">短信编号</param>
        /// <param name="mobile">手机号码</param>
        void UpdateStatus(string status, string smsid, string mobile);

        /// <summary>
        /// 获得当前日期下的已发短信数量
        /// </summary>
        /// <param name="datetime"></param>
        /// <returns></returns>
        int GetSendCount(DateTime datetime);

        /// <summary>
        /// 获得指定日期下已经返回的短信数量
        /// </summary>
        /// <param name="datetime"></param>
        /// <returns></returns>
        int GetReturnCount(DateTime datetime);

        /// <summary>
        /// 获得指定日期下未返回的短信数量
        /// </summary>
        /// <param name="datetime"></param>
        /// <returns></returns>
        int GetUnReturnCount(DateTime datetime);

        /// <summary>
        /// 获得指定日期下成功的短信数量
        /// </summary>
        /// <param name="datetime"></param>
        /// <returns></returns>
        int GetSuccessCount(DateTime datetime);

        /// <summary>
        /// 获得失败情况下的短信数量
        /// </summary>
        /// <param name="datetime"></param>
        /// <returns></returns>
        int GetFailureCount(DateTime datetime);

        /// <summary>
        /// 修改状态信息
        /// </summary>
        /// <param name="sequenceid">序列号</param>
        /// <param name="status">状态</param>
        //void UpdateStatus(decimal sequenceid, string status);
    }
}
